Final project
Write a program that draws a scene of your own design. The minimum requirements are:
- It must be a three-dimensional scene viewed with a perspective projection
- It must contain at least two textured objects
- It must contain at least five distinct objects, at least two of which must be polygonal and enclose some volume
- You must render the scene with a shader program of your design (vertex and fragment shader)
- You must apply a post-process effect to your scene using render-to-texture
- It must be completed in a group of 3-5 people
Additional features will add to the quality of the project. You might want to consider:
- Light sources
- Shadow mapping
- Animation
- User interaction
The project's grade will be based on the technical merits of the program (including program structure) and on its presentation, not on the artistic beauty of the results.
Submission
Check in all your source code into your project repo. You should definitely provide a set of instructions for how to build your project. It would be good to check in an executable too, in case I have trouble building your project. Projects will be demonstrated and judged during tenth week. Your peers will vote on the 'best' project. The grand prize (nice dinner provided by Micah for the entire team) will be awarded at the end of the week or early in the next term.
Rubric
Rubric | |||
---|---|---|---|
Weekly status (three) | 0 : Insufficient progress | 5 : Sufficient progress | |
3D scene | 0 : Not in 3D | 5 : 3D scene | |
Perspective projection | 0 : No projection | 2 : Orthographic projection only | 5 : Perspective projection used |
Five distinct objects | 0 : None | 5 : Five objects | |
Two objects that enclose volume | 0 : None | 5 : Two objects | |
Two textured objects | 0 : None | 10 : Two objects | |
Rendered with custom shader | 0 : No custom shaders | 5 : Custom vertex or fragment shader | 10 : Custom vertex and fragment shader |
Post process effect using render-to-texture | 0 : No effect | 10 : Effect using render-to-texture | |
Project appropriate for group size | -5 : Too simple for group size | 5 : Appropriate for group size | |
Demonstrate other graphic algorithms | 0 : Minimum requirements only | 30 : Additional features |